package org.jeecg.modules.system.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;

import java.io.Serializable;
import java.util.Date;
import java.util.List;


/**
 * 文章管理表
 */
@Data
@TableName("dban_information")
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ApiModel(value="dban_information", description="基础资料表")
public class DbanInformation implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(type = IdType.AUTO)
    @ApiModelProperty(value = "主键ID")
    private Integer id;
    /**文章名称*/
    @ApiModelProperty(value = "名称")
    private String name;
    /**关键词*/
    @ApiModelProperty(value = "关键词")
    private String keyword;
    /**发布地点*/
    @ApiModelProperty(value = "发布地点")
    private String location;
    /**
     * 单位
     */
    @ApiModelProperty(value = "单位")
    private String company;
    /**
     * 出版社
     */
    @ApiModelProperty(value = "出版社")
    private String publisher;
    /**
     * 是否领导批示
     */
    @ApiModelProperty(value = "是否领导批示")
    private String leaderIsCheck;
    /**
     * 刊物名称  也作为文件中的:文件号
     */
    @ApiModelProperty(value = "刊物名称")
    private String bookName;
    /**
     * 发布时间、授课时间
     */
    @ApiModelProperty(value = "发布时间")
    private String releaseDate;
    /**主题*/
    @ApiModelProperty(value = "主题")
    private String subject;
    /**文章 图片 图书 视频 音频 五个一批好成果*/
    @ApiModelProperty(value = "文章 图片 图书 视频 音频 五个一批好成果")
    private String type;
    /**创建人*/
    @ApiModelProperty(value = "创建人")
    private String createUser;
    /**创建人ID*/
    @ApiModelProperty(value = "创建人ID")
    private String createUserId;
    /**创建日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**更新日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**-1-未审核 0-提交审核 1-审核通过 2-审核拒绝 3-发布成功*/
    @ApiModelProperty(value = "-1-未审核 0-提交审核 1-审核通过 2-审核拒绝 3-发布成功")
    private Integer status;
    /**-1-已删除 0-正常数据*/
    private Integer deleteStatus;
    /**标注*/
    @ApiModelProperty(value = "标注")
    private String mark;
    /**标注地址*/
    @ApiModelProperty(value = "标注地址")
    private String markAddress;
    /**作者 、授课人*/
    @ApiModelProperty(value = "作者")
    private String author;
    /**
     * 报告载体
     */
    @ApiModelProperty(value = "报告载体")
    private String reportBody;
    /**简介*/
    @ApiModelProperty(value = "简介")
    private String introduction;
    /**理论文章 教学课程 咨询报告 教材*/
    @ApiModelProperty(value = "理论文章 教学课程 咨询报告 教材")
    private String fiveOneType;
    /**
     * 区域
     */
    @ApiModelProperty(value = "区域")
    private String deptIds;
    /**
     * 角色
     */
    @ApiModelProperty(value = "角色")
    private String roles;
    /**文件*/
    @JsonIgnore
    @ApiModelProperty(value = "文件")
    @TableField(exist = false)
    private MultipartFile[] files;
    /**教材和教学课程文件*/
    @JsonIgnore
    @ApiModelProperty(value = "封面图片")
    @TableField(exist = false)
    private MultipartFile[] coverImage;
    /**教材和教学课程文件*/
    @JsonIgnore
    @ApiModelProperty(value = "作者简介图片")
    @TableField(exist = false)
    private MultipartFile[] authorInfoImage;
    /**教材和教学课程文件*/
    @JsonIgnore
    @ApiModelProperty(value = "版权页图片")
    @TableField(exist = false)
    private MultipartFile[] copyrightImage;
    /**教材和教学课程文件*/
    @JsonIgnore
    @ApiModelProperty(value = "目录图片")
    @TableField(exist = false)
    private MultipartFile[] directoryImage;
    /**教材和教学课程文件*/
    @JsonIgnore
    @ApiModelProperty(value = "全文")
    @TableField(exist = false)
    private MultipartFile[] contentFile;
    /**教材和教学课程文件*/
    @JsonIgnore
    @ApiModelProperty(value = "课程视频")
    @TableField(exist = false)
    private MultipartFile[] lessonVideo;
    /**教材和教学课程文件*/
    @JsonIgnore
    @ApiModelProperty(value = "课程PPT")
    @TableField(exist = false)
    private MultipartFile[] lessonppt;
    /**教材和教学课程文件*/
    @JsonIgnore
    @ApiModelProperty(value = "讲稿")
    @TableField(exist = false)
    private MultipartFile[] speechFile;
    /**
     * 附件表信息
     */
    @TableField(exist = false)
    private List<DbanFileNginx> fileList;

    /**
     * 封面图片
     */
    @TableField(exist = false)
    private List<DbanFileNginx> coverImageList;
    /**
     * 作者简介图片
     */
    @TableField(exist = false)
    private List<DbanFileNginx> authorInfoImageList;
    /**
     * 版权页图片
     */
    @TableField(exist = false)
    private List<DbanFileNginx> copyrightImageList;
    /**
     * 目录图片
     */
    @TableField(exist = false)
    private List<DbanFileNginx> directoryImageList;
    /**
     * 全文
     */
    @TableField(exist = false)
    private List<DbanFileNginx> contentFileList;
    /**
     * 课程视频
     */
    @TableField(exist = false)
    private List<DbanFileNginx> lessonVideoList;
    /**
     * 课程PPT
     */
    @TableField(exist = false)
    private List<DbanFileNginx> lessonpptList;
    /**
     * 讲稿
     */
    @TableField(exist = false)
    private List<DbanFileNginx> speechFileList;

    /**
     * 编辑时删除文件集合,多个id逗号分隔
     */
    @TableField(exist = false)
    private String deleteFileIds;

    @TableField(exist = true)
    private String realName;

    /**
     * 年度
     */
    @TableField(exist = true)
    private Integer year;

    /**
     * view_count
     */
    @TableField(exist = true)
    private Integer viewCount;

    /**
     * 地市
     */
    @TableField(exist = false)
    private String cityName;

    /**
     * 市审核员
     */
    @TableField(exist = false)
    private String cityAuditUserName;

    /**
     * 审核状态
     */
    @TableField(exist = false)
    private String auditStatus;

    /**
     * 审核时间
     */
    @TableField(exist = false)
    private String auditDate;
    /**
     * 撤销的时候使用
     */
    @TableField(exist = true)
    private Integer version;

    /**
     * 最后审核人
     */
    @TableField(exist = true)
    private String latestAuditUserId;

    /**
     * 撤销的时候使用
     */
    @TableField(exist = true)
    private Integer cxversion;

    /**
     * 给数据点赞
     */
    @TableField(exist = true)
    private Integer goodThumb;

    /**
     * 是否置顶，0：是，1：否
     */
    @TableField(exist = true)
    private Integer isTop;

    /**
     * 置顶序号
     */
    @TableField(exist = true)
    private Integer topId;

    /**
     * 类别id，
     * 1：理论文章，
     * 2：咨询报告，
     * 3：教材，
     * 4：教学课程，
     * 5：图片
     * 6：视频
     * 7：文件
     * 8：文章
     * 9：图书
     * 10：音频
     */
    @TableField(exist = true)
    private Integer categoryId;

    /**
     * 主分类，1：五个一好成果，2：基础资源
     * */
    @TableField(exist = true)
    private Integer mainCategory;
}
